package com.gmrz.webauthn.protocol.v1.schema;


import java.sql.Timestamp;
import java.util.List;


public class WebAuthenticator {
    private String waId;
    private String wmId;
    private String userName;
    private String custNo;
    private String userId;
    private String displayName;
    private AttestationFormat attestationFormat;
    private List<AuthenticatorTransport> transports;
    private String type;
    private String credentialId;
    private String publicKey = null;
    private AAGUID aaguid;
    private int keyFormat;
    private int signAlgo;
    private int regCounter = 0;
    private long signCounter = 0L;
    private int status;
    private int authCounter;
    private String deviceId;

    private String attestCertChainHash;

    private Timestamp createTimeStamp;

    private Timestamp updateTimeStamp;
    private String tenantId;
    private String authType;
    private String transType;
    private String rf1;
    private String rf2;

    public String getWaId() {
        return waId;
    }

    public void setWaId(String waId) {
        this.waId = waId;
    }

    public String getWmId() {
        return wmId;
    }

    public void setWmId(String wmId) {
        this.wmId = wmId;
    }

    public String getCustNo() {
        return custNo;
    }

    public void setCustNo(String custNo) {
        this.custNo = custNo;
    }

    public int getAuthCounter() {
        return authCounter;
    }

    public void setAuthCounter(int authCounter) {
        this.authCounter = authCounter;
    }

    public String getAuthType() {
        return authType;
    }

    public void setAuthType(String authType) {
        this.authType = authType;
    }

    public String getTransType() {
        return transType;
    }

    public void setTransType(String transType) {
        this.transType = transType;
    }

    public String getRf1() {
        return rf1;
    }

    public void setRf1(String rf1) {
        this.rf1 = rf1;
    }

    public String getRf2() {
        return rf2;
    }

    public void setRf2(String rf2) {
        this.rf2 = rf2;
    }

    public AttestationFormat getAttestationFormat() {
        return this.attestationFormat;
    }

    public void setAttestationFormat(AttestationFormat attestationFormat) {
        this.attestationFormat = attestationFormat;
    }

    public String getUserId() {
        return this.userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public WebAuthenticator withUserId(String userId) {
        this.userId = userId;
        return this;
    }

    public WebAuthenticator withId(String waId) {
        this.waId = waId;
        return this;
    }

    public String getUsername() {
        return this.userName;
    }

    public void setUsername(String userName) {
        this.userName = userName;
    }

    public WebAuthenticator withUserName(String userName) {
        this.userName = userName;
        return this;
    }

    public WebAuthenticator withAaguid(AAGUID aaguid) {
        this.aaguid = aaguid;
        return this;
    }

    public AAGUID getAaguid() {
        return this.aaguid;
    }

    public void setAaguid(AAGUID aaguid) {
        this.aaguid = aaguid;
    }


    public int getSignAlgo() {
        return this.signAlgo;
    }

    public void setSignAlgo(int signAlgo) {
        this.signAlgo = signAlgo;
    }

    public String getUserName() {
        return this.userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getDisplayName() {
        return this.displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public WebAuthenticator withDisplayName(String displayName) {
        this.displayName = displayName;
        return this;
    }

    public String getType() {
        return this.type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public WebAuthenticator withType(String type) {
        this.type = type;
        return this;
    }

    public String getCredentialId() {
        return this.credentialId;
    }

    public void setCredentialId(String credentialId) {
        this.credentialId = credentialId;
    }

    public WebAuthenticator withCredentialId(String credentialId) {
        this.credentialId = credentialId;
        return this;
    }

    public String getPublicKey() {
        return this.publicKey;
    }

    public void setPublicKey(String publicKey) {
        this.publicKey = publicKey;
    }

    public WebAuthenticator withPublicKey(String publicKey) {
        this.publicKey = publicKey;
        return this;
    }

    public int getKeyFormat() {
        return this.keyFormat;
    }

    public void setKeyFormat(int format) {
        this.keyFormat = format;
    }

    public WebAuthenticator withKeyFormat(int format) {
        this.keyFormat = format;
        return this;
    }

    public List<AuthenticatorTransport> getTransports() {
        return this.transports;
    }

    public void setTransports(List<AuthenticatorTransport> transports) {
        this.transports = transports;
    }

    public WebAuthenticator withTransports(List<AuthenticatorTransport> transports) {
        this.transports = transports;
        return this;
    }

    public Timestamp getCreateTimeStamp() {
        return this.createTimeStamp;
    }

    public void setCreateTimeStamp(Timestamp createTimeStamp) {
        this.createTimeStamp = createTimeStamp;
    }

    public WebAuthenticator withCreateTimeStamp(Timestamp createTimeStamp) {
        this.createTimeStamp = createTimeStamp;
        return this;
    }

    public Timestamp getUpdateTimeStamp() {
        return this.updateTimeStamp;
    }

    public void setUpdateTimeStamp(Timestamp updateTimeStamp) {
        this.updateTimeStamp = updateTimeStamp;
    }

    public WebAuthenticator withUpdateTimeStamp(Timestamp updateTimeStamp) {
        this.updateTimeStamp = updateTimeStamp;
        return this;
    }


    public int getRegCounter() {
        return this.regCounter;
    }

    public void setRegCounter(int regCounter) {
        this.regCounter = regCounter;
    }

    public WebAuthenticator withRegCounter(int regCounter) {
        this.regCounter = regCounter;
        return this;
    }

    public long getSignCounter() {
        return this.signCounter;
    }

    public void setSignCounter(long signCounter) {
        this.signCounter = signCounter;
    }

    public WebAuthenticator withSignCounter(int signCounter) {
        this.signCounter = signCounter;
        return this;
    }

    public int getStatus() {
        return this.status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public WebAuthenticator withStatus(int status) {
        this.status = status;
        return this;
    }

    public String getAttestCertChainHash() {
        return this.attestCertChainHash;
    }

    public void setAttestCertChainHash(String attestCertChainHash) {
        this.attestCertChainHash = attestCertChainHash;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }
}
